/* DataPlexus 拟物风格增强样式 - 美化版 */

/* ========== 全局拟物风格变量 - 色彩增强版 ========== */
:root {
  /* 背景色系 */
  --neu-light-bg: #fefbff;
  --neu-medium-bg: #f8fafc;
  --neu-dark-bg: #f1f5f9;
  --neu-darker-bg: #e2e8f0;

  /* 阴影色系 */
  --neu-shadow-light: #ffffff;
  --neu-shadow-medium: #f8fafc;
  --neu-shadow-dark: #d1d9e6;
  --neu-shadow-darker: #c8d0dc;
  --neu-shadow-purple: rgba(139, 92, 246, 0.08);
  --neu-shadow-purple-dark: rgba(91, 33, 182, 0.12);

  /* 主色调系 */
  --neu-primary: #5b21b6;
  --neu-primary-light: #7c3aed;
  --neu-primary-lighter: #8b5cf6;
  --neu-primary-dark: #4c1d95;
  --neu-primary-darker: #3730a3;

  /* 功能色系 */
  --neu-success: #059669;
  --neu-success-light: #10b981;
  --neu-warning: #d97706;
  --neu-warning-light: #f59e0b;
  --neu-error: #dc2626;
  --neu-error-light: #ef4444;
  --neu-info: #2563eb;
  --neu-info-light: #3b82f6;

  /* 文字色系 */
  --neu-text: #0f172a;
  --neu-text-secondary: #334155;
  --neu-text-tertiary: #475569;
  --neu-text-quaternary: #64748b;

  /* 边框色系 */
  --neu-border-light: rgba(139, 92, 246, 0.08);
  --neu-border-medium: rgba(139, 92, 246, 0.15);
  --neu-border-dark: rgba(91, 33, 182, 0.2);
}

/* ========== 拟物风格工具类 - 色彩增强版 ========== */
.neu-raised {
  box-shadow: 4px 4px 8px var(--neu-shadow-purple), -4px -4px 8px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(255, 255, 255, 0.9) !important;
  border: 1px solid var(--neu-border-light) !important;
}

.neu-raised-hover:hover {
  box-shadow: 6px 6px 12px var(--neu-shadow-purple-dark), -6px -6px 12px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(255, 255, 255, 0.95),
              0 0 0 2px var(--neu-border-light) !important;
  transform: translateY(-1px) !important;
}

.neu-pressed {
  box-shadow: inset 3px 3px 6px var(--neu-shadow-purple), inset -3px -3px 6px var(--neu-shadow-light) !important;
}

.neu-floating {
  box-shadow: 8px 8px 16px var(--neu-shadow-purple), -8px -8px 16px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(255, 255, 255, 0.9) !important;
  border: 1px solid var(--neu-border-light) !important;
}

.neu-floating-hover:hover {
  box-shadow: 12px 12px 24px var(--neu-shadow-purple-dark), -12px -12px 24px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(255, 255, 255, 0.95),
              0 0 8px var(--neu-shadow-purple) !important;
  transform: translateY(-2px) !important;
  border-color: var(--neu-border-medium) !important;
}

/* 背景渐变工具类 */
.neu-gradient-bg {
  background: linear-gradient(135deg, var(--neu-light-bg) 0%, var(--neu-medium-bg) 50%, var(--neu-dark-bg) 100%) !important;
}

.neu-gradient-bg-rich {
  background: linear-gradient(135deg,
    var(--neu-light-bg) 0%,
    var(--neu-medium-bg) 25%,
    var(--neu-dark-bg) 50%,
    #faf5ff 75%,
    #f0fdf4 100%) !important;
}

.neu-primary-gradient {
  background: linear-gradient(135deg, var(--neu-primary) 0%, var(--neu-primary-light) 50%, var(--neu-primary-lighter) 100%) !important;
}

.neu-primary-gradient-deep {
  background: linear-gradient(135deg, var(--neu-primary-dark) 0%, var(--neu-primary) 50%, var(--neu-primary-light) 100%) !important;
}

/* 功能色渐变 */
.neu-success-gradient {
  background: linear-gradient(135deg, var(--neu-success) 0%, var(--neu-success-light) 100%) !important;
}

.neu-warning-gradient {
  background: linear-gradient(135deg, var(--neu-warning) 0%, var(--neu-warning-light) 100%) !important;
}

.neu-error-gradient {
  background: linear-gradient(135deg, var(--neu-error) 0%, var(--neu-error-light) 100%) !important;
}

.neu-info-gradient {
  background: linear-gradient(135deg, var(--neu-info) 0%, var(--neu-info-light) 100%) !important;
}

/* 过渡动画 */
.neu-transition {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.neu-transition-fast {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.neu-transition-slow {
  transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* ========== 拟物风格表格增强 - 色彩丰富版 ========== */
body.purple-theme .ant-table {
  background: linear-gradient(135deg, var(--neu-light-bg) 0%, var(--neu-medium-bg) 50%, var(--neu-dark-bg) 100%) !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  border: 1px solid var(--neu-border-light) !important;
  box-shadow: 6px 6px 12px var(--neu-shadow-purple), -6px -6px 12px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(255, 255, 255, 0.9) !important;
}

body.purple-theme .ant-table-thead > tr > th {
  background: linear-gradient(135deg, #ddd6fe 0%, #e0e7ff 50%, var(--neu-dark-bg) 100%) !important;
  border: none !important;
  color: var(--neu-text) !important;
  font-weight: 600 !important;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8) !important;
  position: relative !important;
}

body.purple-theme .ant-table-thead > tr > th::before {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent 0%, var(--neu-border-medium) 50%, transparent 100%) !important;
}

body.purple-theme .ant-table-tbody > tr > td {
  border: none !important;
  color: var(--neu-text) !important;
  position: relative !important;
}

body.purple-theme .ant-table-tbody > tr:hover > td {
  background: linear-gradient(135deg,
    rgba(91, 33, 182, 0.08) 0%,
    rgba(124, 58, 237, 0.06) 50%,
    rgba(139, 92, 246, 0.04) 100%) !important;
}

/* 表格行选中状态 */
body.purple-theme .ant-table-tbody > tr.ant-table-row-selected > td {
  background: linear-gradient(135deg, #f3e8ff 0%, #faf5ff 100%) !important;
  color: var(--neu-primary) !important;
}

/* 表格排序图标 */
body.purple-theme .ant-table-column-sorter {
  color: var(--neu-primary) !important;
}

/* ========== 拟物风格分页增强 - 色彩丰富版 ========== */
body.purple-theme .ant-pagination {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

body.purple-theme .ant-pagination .ant-pagination-item {
  background: linear-gradient(135deg, var(--neu-light-bg) 0%, var(--neu-medium-bg) 50%, var(--neu-dark-bg) 100%) !important;
  border: 1px solid var(--neu-border-light) !important;
  border-radius: 12px !important;
  box-shadow: 2px 2px 4px var(--neu-shadow-purple), -2px -2px 4px var(--neu-shadow-light) !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

body.purple-theme .ant-pagination .ant-pagination-item:hover {
  box-shadow: 3px 3px 6px var(--neu-shadow-purple-dark), -3px -3px 6px var(--neu-shadow-light),
              0 0 0 1px var(--neu-border-medium) !important;
  transform: translateY(-1px) !important;
  border-color: var(--neu-border-medium) !important;
}

body.purple-theme .ant-pagination .ant-pagination-item-active {
  background: linear-gradient(135deg, var(--neu-primary) 0%, var(--neu-primary-light) 50%, var(--neu-primary-lighter) 100%) !important;
  border: 1px solid var(--neu-border-dark) !important;
  box-shadow: inset 1px 1px 2px rgba(76, 29, 149, 0.4),
              inset -1px -1px 2px rgba(139, 92, 246, 0.2),
              0 0 8px var(--neu-shadow-purple) !important;
}

body.purple-theme .ant-pagination .ant-pagination-item-active a {
  color: #ffffff !important;
  font-weight: 600 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
}

/* 分页按钮（上一页/下一页） */
body.purple-theme .ant-pagination .ant-pagination-prev,
body.purple-theme .ant-pagination .ant-pagination-next {
  background: linear-gradient(135deg, var(--neu-light-bg) 0%, var(--neu-medium-bg) 100%) !important;
  border: 1px solid var(--neu-border-light) !important;
  border-radius: 12px !important;
  box-shadow: 2px 2px 4px var(--neu-shadow-purple), -2px -2px 4px var(--neu-shadow-light) !important;
}

body.purple-theme .ant-pagination .ant-pagination-prev:hover,
body.purple-theme .ant-pagination .ant-pagination-next:hover {
  border-color: var(--neu-border-medium) !important;
  box-shadow: 3px 3px 6px var(--neu-shadow-purple-dark), -3px -3px 6px var(--neu-shadow-light) !important;
}

/* 分页跳转输入框 */
body.purple-theme .ant-pagination .ant-pagination-options-quick-jumper input {
  background: linear-gradient(135deg, #ffffff 0%, var(--neu-light-bg) 100%) !important;
  border: 1px solid var(--neu-border-light) !important;
  border-radius: 8px !important;
  box-shadow: inset 1px 1px 2px var(--neu-shadow-purple), inset -1px -1px 2px var(--neu-shadow-light) !important;
}

/* ========== 拟物风格标签增强 - 色彩丰富版 ========== */
body.purple-theme .ant-tag {
  background: linear-gradient(135deg, var(--neu-light-bg) 0%, var(--neu-medium-bg) 100%) !important;
  border: 1px solid var(--neu-border-light) !important;
  border-radius: 16px !important;
  box-shadow: 2px 2px 4px var(--neu-shadow-purple), -2px -2px 4px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(255, 255, 255, 0.9) !important;
  color: var(--neu-text-secondary) !important;
  font-weight: 500 !important;
  padding: 4px 12px !important;
  transition: all 0.2s ease !important;
}

body.purple-theme .ant-tag:hover {
  box-shadow: 3px 3px 6px var(--neu-shadow-purple-dark), -3px -3px 6px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(255, 255, 255, 0.95) !important;
  transform: translateY(-1px) !important;
  border-color: var(--neu-border-medium) !important;
}

/* 彩色标签 */
body.purple-theme .ant-tag-blue {
  background: linear-gradient(135deg, #dbeafe 0%, #eff6ff 100%) !important;
  color: var(--neu-info) !important;
  border-color: rgba(37, 99, 235, 0.2) !important;
}

body.purple-theme .ant-tag-green {
  background: linear-gradient(135deg, #d1fae5 0%, #ecfdf5 100%) !important;
  color: var(--neu-success) !important;
  border-color: rgba(5, 150, 105, 0.2) !important;
}

body.purple-theme .ant-tag-orange {
  background: linear-gradient(135deg, #fef3c7 0%, #fffbeb 100%) !important;
  color: var(--neu-warning) !important;
  border-color: rgba(217, 119, 6, 0.2) !important;
}

body.purple-theme .ant-tag-purple {
  background: linear-gradient(135deg, #f3e8ff 0%, #faf5ff 100%) !important;
  color: var(--neu-primary) !important;
  border-color: var(--neu-border-medium) !important;
}

/* ========== 拟物风格统计卡片增强 ========== */
body.purple-theme .ant-statistic {
  position: relative !important;
}

body.purple-theme .ant-statistic-title {
  color: #475569 !important;
  font-weight: 500 !important;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8) !important;
  margin-bottom: 8px !important;
}

body.purple-theme .ant-statistic-content {
  color: #1e293b !important;
  font-weight: 700 !important;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8) !important;
}

/* ========== 拟物风格开关增强 ========== */
body.purple-theme .ant-switch {
  background: linear-gradient(135deg, #e2e8f0 0%, #f1f5f9 100%) !important;
  box-shadow: inset 2px 2px 4px #d1d9e6, inset -2px -2px 4px #ffffff !important;
  border: none !important;
}

body.purple-theme .ant-switch-checked {
  background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%) !important;
  box-shadow: inset 1px 1px 2px rgba(91, 33, 182, 0.3), 
              inset -1px -1px 2px rgba(139, 92, 246, 0.1) !important;
}

body.purple-theme .ant-switch-handle {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
  box-shadow: 1px 1px 2px #d1d9e6, -1px -1px 2px #ffffff !important;
}

/* ========== 拟物风格滑块增强 ========== */
body.purple-theme .ant-slider-rail {
  background: linear-gradient(135deg, #e2e8f0 0%, #f1f5f9 100%) !important;
  box-shadow: inset 1px 1px 2px #d1d9e6, inset -1px -1px 2px #ffffff !important;
  border-radius: 10px !important;
}

body.purple-theme .ant-slider-track {
  background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%) !important;
  box-shadow: inset 0.5px 0.5px 1px rgba(91, 33, 182, 0.3) !important;
  border-radius: 10px !important;
}

body.purple-theme .ant-slider-handle {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
  border: none !important;
  box-shadow: 2px 2px 4px #d1d9e6, -2px -2px 4px #ffffff, 
              0 0 0 2px rgba(99, 102, 241, 0.2) !important;
}

body.purple-theme .ant-slider-handle:hover {
  box-shadow: 3px 3px 6px #c8d0dc, -3px -3px 6px #ffffff, 
              0 0 0 2px rgba(99, 102, 241, 0.3) !important;
}

/* ========== 拟物风格步骤条增强 ========== */
body.purple-theme .ant-steps-item-process .ant-steps-item-icon {
  background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%) !important;
  border: none !important;
  box-shadow: 2px 2px 4px #d1d9e6, -2px -2px 4px #ffffff !important;
}

body.purple-theme .ant-steps-item-finish .ant-steps-item-icon {
  background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
  border: none !important;
  box-shadow: 2px 2px 4px #d1d9e6, -2px -2px 4px #ffffff !important;
}

body.purple-theme .ant-steps-item-wait .ant-steps-item-icon {
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%) !important;
  border: none !important;
  box-shadow: inset 1px 1px 2px #d1d9e6, inset -1px -1px 2px #ffffff !important;
}

/* ========== 拟物风格面包屑增强 ========== */
body.purple-theme .ant-breadcrumb {
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%) !important;
  padding: 12px 20px !important;
  border-radius: 20px !important;
  box-shadow: 2px 2px 4px #d1d9e6, -2px -2px 4px #ffffff, 
              inset 0 0 0 1px rgba(255, 255, 255, 0.8) !important;
}

body.purple-theme .ant-breadcrumb a {
  color: #6366f1 !important;
  font-weight: 500 !important;
  transition: all 0.2s ease !important;
}

body.purple-theme .ant-breadcrumb a:hover {
  color: #5b21b6 !important;
  text-shadow: 0 1px 2px rgba(99, 102, 241, 0.3) !important;
}

/* ========== 拟物风格警告框增强 - 色彩丰富版 ========== */
body.purple-theme .ant-alert {
  background: linear-gradient(135deg, var(--neu-light-bg) 0%, var(--neu-medium-bg) 100%) !important;
  border: 1px solid var(--neu-border-light) !important;
  border-radius: 16px !important;
  box-shadow: 3px 3px 6px var(--neu-shadow-purple), -3px -3px 6px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(255, 255, 255, 0.9) !important;
  position: relative !important;
  overflow: hidden !important;
}

body.purple-theme .ant-alert-success {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 50%, #bbf7d0 100%) !important;
  border-color: rgba(5, 150, 105, 0.2) !important;
  box-shadow: 3px 3px 6px rgba(5, 150, 105, 0.08), -3px -3px 6px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(16, 185, 129, 0.15) !important;
}

body.purple-theme .ant-alert-warning {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 50%, #fde68a 100%) !important;
  border-color: rgba(217, 119, 6, 0.2) !important;
  box-shadow: 3px 3px 6px rgba(217, 119, 6, 0.08), -3px -3px 6px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(245, 158, 11, 0.15) !important;
}

body.purple-theme .ant-alert-error {
  background: linear-gradient(135deg, #fef2f2 0%, #fecaca 50%, #fca5a5 100%) !important;
  border-color: rgba(220, 38, 38, 0.2) !important;
  box-shadow: 3px 3px 6px rgba(220, 38, 38, 0.08), -3px -3px 6px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(239, 68, 68, 0.15) !important;
}

body.purple-theme .ant-alert-info {
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 50%, #93c5fd 100%) !important;
  border-color: rgba(37, 99, 235, 0.2) !important;
  box-shadow: 3px 3px 6px rgba(37, 99, 235, 0.08), -3px -3px 6px var(--neu-shadow-light),
              inset 0 0 0 1px rgba(59, 130, 246, 0.15) !important;
}

/* 警告框图标增强 */
body.purple-theme .ant-alert-icon {
  font-size: 16px !important;
}

body.purple-theme .ant-alert-success .ant-alert-icon {
  color: var(--neu-success) !important;
}

body.purple-theme .ant-alert-warning .ant-alert-icon {
  color: var(--neu-warning) !important;
}

body.purple-theme .ant-alert-error .ant-alert-icon {
  color: var(--neu-error) !important;
}

body.purple-theme .ant-alert-info .ant-alert-icon {
  color: var(--neu-info) !important;
}

/* 警告框关闭按钮 */
body.purple-theme .ant-alert-close-icon {
  background: rgba(255, 255, 255, 0.8) !important;
  border-radius: 50% !important;
  width: 20px !important;
  height: 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease !important;
}

body.purple-theme .ant-alert-close-icon:hover {
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 1px 1px 2px var(--neu-shadow-purple) !important;
}
